From 7a263c68a0ad87019f36485aa108fb655e3eeaad Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 1 Dec 2011 16:45:36 +0100 Subject: [PATCH] gdk: Fix repaint of layered region during move_region --- gdk/gdkwindow.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index c13b9a88b8..04026ac414 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -6409,12 +6409,17 @@ gdk_window_move_region (GdkWindow *window, impl_window = gdk_window_get_impl_window (window); /* compute source regions */ - copy_area = cairo_region_copy (region); + if (window->has_alpha_background) + copy_area = cairo_region_create (); /* Copy nothing for alpha windows */ + else + copy_area = cairo_region_copy (region); cairo_region_intersect (copy_area, window->clip_region_with_children); + cairo_region_subtract (copy_area, window->layered_region); /* compute destination regions */ cairo_region_translate (copy_area, dx, dy); cairo_region_intersect (copy_area, window->clip_region_with_children); + cairo_region_subtract (copy_area, window->layered_region); /* Invalidate parts of the region (source and dest) not covered by the copy */ -- 2.30.2